Spring AI 的設計理念非常簡單:
讓 AI 模型的使用方式,和你在 Spring 裡使用
JdbcTemplate
或RestTemplate
一樣自然。
Spring AI 透過幾個關鍵元件,讓開發者能用最少的程式碼就能呼叫 LLM 模型:
元件 | 功能 | 範例用途 |
---|---|---|
ChatClient |
與 LLM 對話的主要入口 | 發送 prompt、接收回答 |
PromptTemplate |
模板化輸入字串 | 用於組合系統提示與使用者輸入 |
可以透過 Spring Initializr 建立新專案:
spring-boot-starter-web
spring-ai-openai
產生後的目錄結構如下:
spring-ai-demo/
├─ src/
│ ├─ main/java/com/example/demo/
│ │ ├─ DemoApplication.java
│ │ └─ ChatController.java
│ └─ resources/
│ └─ application.yml
└─ pom.xml
在 application.yml
加入設定:
spring:
ai:
openai:
api-key: ${OPENAI_API_KEY}
Spring AI 的核心是 ChatClient
。
我們先來建立一個簡單的 REST API,讓前端可以丟訊息給模型回覆。
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.ai.openai.OpenAiChatOptions;
import org.springframework.ai.openai.api.OpenAiApi;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api")
public class ChatController {
// 由 Spring Boot 自動注入 ChatClient(Spring AI 提供)
@PostMapping("/chat")
public String chat(@RequestParam String message) {
OpenAiApi openAiApi = OpenAiApi.builder()
.apiKey("api-key")
.build();
OpenAiChatModel chatModel = OpenAiChatModel.builder()
.openAiApi(openAiApi)
.build();
ChatResponse response = chatModel.call(
new Prompt(
message,
OpenAiChatOptions.builder()
.model("gpt-4o")
.temperature(0.4)
.build()
));
return response.getResult().getOutput().getText();
}
}
執行應用程式後,呼叫:
http://localhost:8080/api/chat?message=跟我說個笑話
就能得到 AI 模型的回覆
主題 | 重點 |
---|---|
Spring AI 主要組件 | OpenAiChatOptions、OpenAiChatModel |
優勢 | 不需額外框架,與企業現有系統無縫整合 |
在下一篇中,我們將讓你的 Spring AI 應用支援雲端模型與本地模型共存,
並學會如何在程式中動態切換不同 Provider。